<?php
/**
 * 模块核心类
 */
if (! defined('IN_SITE')) {
	exit('invalid request');
}

class MasterObject {
	var $Code = '';

	function __construct()
	{
		$code = get_param('code');
		if (! $code) {
			$code = $_REQUEST['code'];
		}
 		$code = safeSimpleName($code);
		$this->Code = $code;
	}

	/**
	 * 根据当前会话中的 cookie 来加载用户信息。
	 * @param boolean $forceLogin 指定为 true 时，如果当前未登录，则直接重定向到登录页。
	 */
	function checkUserInfo($forceLogin = false)
	{
		$passport = new Passport();
		$user = $passport->get_login_status();
		if (empty($user)) {
			if ($forceLogin) {
				saveAutoJump($_SERVER['REQUEST_URI']);
				header('Location: /d/user');
				exit();
			}
			return;
		}

		$GLOBALS['user'] = $user;
		$GLOBALS['uid'] = $user['uid'];
		//销售人员进入后台
		$sql = "SELECT * FROM ".DB::tname('crm_sales')." WHERE uid = ".$GLOBALS['uid'];
		$sales = DB::querySingleRow($sql);
		if($sales){
			$GLOBALS['is_operator'] = true;
		}else{
			$GLOBALS['is_operator'] = in_array($user['loginname'], $GLOBALS['config']['operators']);
		}
		$GLOBALS['is_adminoperator'] = in_array($user['loginname'], $GLOBALS['config']['adminoperators']);
		$GLOBALS['is_consoler'] = in_array($user['loginname'], $GLOBALS['config']['consolers']);
		$GLOBALS['is_auth'] = $passport -> authCon($user['loginname']);
	}

	/**
	 * 以 json/jsonp 方式输出 ajax 请求的响应，并推出程序执行。
	 * @param mixed $v 要输出的数据。
	 */
	function ajaxResponse($v)
	{
		// 禁用浏览器缓存
		header('Cache-Control: no-cache');

		// 如果不是字符串，则先用 json_encode() 编码为字符串
		if (!is_string($v)) {
			$v = json_encode($v);
		}

		$cb = safeSimpleName($_GET['callback']);
		if (empty($cb)) {
			// json
			echo $v;
		} else {
			// jsonp
			echo $cb . '(' . $v . ');';
		}
		exit();
	}

// 	/**
// 	 * 根据指定的 cat/key/since 检查缓存是否有效。
// 	 * 如果缓存有效则输出后程序中止，否则此后的输出内容将被保存到缓存中。
// 	 * @param string $cache_cat
// 	 * @param string $cache_key
// 	 * @param number $since
// 	 */
// 	function checkCachedResponse($cache_cat, $cache_key, $since = 0)
// 	{
// 		include_once ROOT_PATH . 'include/fs_cache.php';
// 		$this->_cache = new FsCache($GLOBALS['config']['cache_path']);

// 		list($mtime, $html) = $this->_cache->fetch($cache_cat, $cache_key, $since);
// 		if ($mtime > 0) {
// 			echo $html;
// 			exit();
// 		}

// 		$this->_cache_cat = $cache_cat;
// 		$this->_cache_key = $cache_key;
// 		ob_start(array($this, 'saveObToCache'));
// 	}

// 	function saveObToCache($content)
// 	{
// 		$this->_cache->store($this->_cache_cat, $this->_cache_key, $content);
// 		return false;
// 	}
/*
	function showMessager($message, $redirectto = '', $time = 0)
	{
		// 显示消息页
		$GLOBALS['smarty']->assign('message', $message);
		$GLOBALS['smarty']->assign('redirect_url', $redirectto);
		if ($time > 0) {
			$GLOBALS['smarty']->assign('redirect_delay', $time);
		}
		$GLOBALS['smarty']->display('index/message.tpl');
		exit();
	}*/
	/*
	 * 跳转页面的改写
	 *
	 * @message string 传入信息，用html格式传入
	 * @redirectto string 跳转页面
	 * @time int 跳转时间
	 * @icon string 跳转是显示的图像的css样式名称
	 *
	 */

	function showMessager($arr){
		if(!isset($arr['message'])){
			$arr['message'] = '<b>正在带您去磐和首页</b>';
			$arr['redirectto'] = '/';
		}
		if(!isset($arr['redirectto'])){
			$arr['redirectto'] = '';
		}
		if(!isset($arr['time'])){
			$arr['time'] = 0;
		}
		if(!isset($arr['icon'])){
			$arr['icon'] = 'login';
		}
		// 显示消息页
		$GLOBALS['smarty']->assign('message', $arr['message']);
		$GLOBALS['smarty']->assign('redirect_url', $arr['redirectto']);
		if ($arr['time'] > 0) {
			$GLOBALS['smarty']->assign('redirect_delay', $arr['time']);
		}
		$GLOBALS['smarty']->assign('redirect_icon', $arr['icon']);
		$GLOBALS['smarty']->display('index/message.tpl');
		exit();
	}

	function js_show_msg()
	{
		// 显示弹出消息
	}
}
